/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.iscmoh.ebdrl.java.model.core;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToMany;
import javax.persistence.Table;

/**
 *
 * @author Isaac
 */

@Entity
@Table(name="Marcadores")
public class Marcador implements Serializable, Comparable<Marcador>{
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    private String nome;
    //private owner;
   
    @ManyToMany
    private List<Revista> revistas_marcadas;

    public Marcador() {
        this.revistas_marcadas = new ArrayList<Revista>();
    }

    public Marcador(String nome) {
        this.nome = nome;
        this.revistas_marcadas = new ArrayList<Revista>();
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void addRevista(Revista revista){
        this.revistas_marcadas.add(revista);
    }

    public void addAllRevistas(Collection<Revista> revista){
        this.revistas_marcadas.addAll(revistas_marcadas);
    }

    public List<Revista> getRevistas(){
        return revistas_marcadas;
    }

    public boolean removeRevista(Revista revista){
        return this.revistas_marcadas.remove(revista);
    }

    public boolean removeAllRevistas(Collection<Revista> revistas){
        return this.revistas_marcadas.removeAll(revistas);
    }

    public void clearRevistas(){
        this.revistas_marcadas.clear();
    }

    public int compareTo(Marcador outroMarcador) {
       return nome.compareToIgnoreCase(outroMarcador.getNome());
    }
    
    @Override
    public String toString(){
        return "["+ id + "#" + nome + "]";
    }
}
